package com.hoshiicloud.user.entity.organization;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 店铺（伙伴/供应商)
 * </p>
 *
 * @author campchen
 * @since 2019-04-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class StoreOrganization implements Serializable {
    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 供应商编码
     */
    private String orgCode;

    /**
     * 店铺ID
     */
    private Long storeId;

    /**
     * 来源于organization_type
     * 1-国内供应商 2-国外供应商 3-合作伙伴 4-其他机构
     */
    private Long organizationTypeId;

    /**
     * 0-跨境供应商 1-国内供应商
     */
    private Integer type;

    /**
     * 上级机构
     */
    private Long parentId;

    /**
     * 事业部名称，供应商名称
     */
    private String name;

    /**
     * 负责人
     */
    private String charge;

    /**
     * 身份证号码
     */
    private String idCard;

    @ApiModelProperty(name = "accountType", value = "账户类型 1-企业账户 2-个人账户")
    private Integer accountType;

    @ApiModelProperty(name = "accountName", value = "户名(开户名称)")
    private String accountName;

    /**
     * 对公帐号
     */
    private String bankNumber;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 所在支行
     */
    private String bankAddress;

    /**
     * 税务登记号
     */
    private String taxation;

    /**
     * 开票号
     */
    private String piaohao;

    /**
     * 电话号码
     */
    private String telphone;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 传真
     */
    private String fax;

    /**
     * 主页
     */
    private String home;

    /**
     * 邮件
     */
    private String email;

    /**
     * 公司地址
     */
    private String address;

    /**
     * 创建时间
     */
    private LocalDateTime createdTime;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 修改时间
     */
    private LocalDateTime modifiedTime;

    /**
     * 修改人
     */
    private String modifiedBy;

    /**
     * 发货地址
     */
    private String goodsAddress;

    /**
     * 仓库地址
     */
    private String whouseAddress;

    /**
     * 结算方式（结算方式表）
     */
    private Long paymentId;

    /**
     * 状态 0-未审批 1-已审批 2-已终止合作
     */
    private Integer status;

    @ApiModelProperty(name = "applyType", value = "1-法定代表人 2-经营负责人")
    private Integer applyType;

    @ApiModelProperty(name = "applyIdNumber", value = "申请人身份证号码")
    private String applyIdNumber;

    @ApiModelProperty(name = "applyName", value = "申请人姓名")
    private String applyName;

    @ApiModelProperty(name = "applyAddress", value = "申请人地址")
    private String applyAddress;

    @ApiModelProperty(name = "applyIssuedby", value = "申请人签发机关")
    private String applyIssuedby;

    @ApiModelProperty(name = "applySex", value = "申请人性别")
    private String applySex;

    @ApiModelProperty(name = "applyBirthplace", value = "申请人籍贯")
    private String applyBirthplace;

    @ApiModelProperty(name = "applyBirth", value = "申请人出生日期")
    private String applyBirthday;

    @ApiModelProperty(name = "applyIdFront", value = "申请人身份证正面")
    private String applyIdFront;

    @ApiModelProperty(name = "applyIdBack", value = "申请人身份证反面")
    private String applyIdBack;

    @ApiModelProperty(name = "chargeTelphone", value = "负责人电话")
    private String chargeTelphone;

    @ApiModelProperty(name = "chargeWeixin", value = "负责人微信")
    private String chargeWeixin;

    @ApiModelProperty(name = "chargeEmail", value = "负责人邮箱")
    private String chargeEmail;

    @ApiModelProperty(name = "province", value = "省份")
    private Integer province;

    @ApiModelProperty(name = "provinceName", value = "省份名")
    private String provinceName;

    @ApiModelProperty(name = "city", value = "城市")
    private Integer city;

    @ApiModelProperty(name = "cityName", value = "城市名称")
    private String cityName;

    @ApiModelProperty(name = "district", value = "地区")
    private Integer district;

    @ApiModelProperty(name = "districtName", value = "地区名")
    private String districtName;

    @ApiModelProperty(name = "street", value = "街道")
    private Integer street;

    @ApiModelProperty(name = "streetName", value = "街道名")
    private String streetName;

    /**
     * 推荐人ID  来源于 合作伙伴
     */
    @TableField("referrer_id")
    private Long referrerId;

    /**
     * 账户可用余额
     */
    @TableField("available_balance")
    private BigDecimal availableBalance;

    /**
     * 账户总额
     */
    @TableField("account_balance")
    private BigDecimal accountBalance;

    /**
     * 冻结金额
     */
    @TableField("freezing_amount")
    private BigDecimal freezingAmount;

    @ApiModelProperty(name = "departmentId", value = "负责部门ID", required = true, dataType = "java.lang.Long", example = "3171776001692665738")
    private Long departmentId;

    @ApiModelProperty(value = "联系人")
    private String contacts;

    @ApiModelProperty(value = "邀请码")
    private String invitedCode;

    @ApiModelProperty(value = "微信号")
    private String weixin;

    @ApiModelProperty(value = "公司简介")
    private String profile;
}
